package com.qfmy.common.utils;

import io.netty.channel.Channel;
import io.netty.util.AttributeKey;


import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author 清风明月
 * @Package com.lzw.breezeNovel.common.utils
 * @date 2025/4/13
 * @description channel工具类
 */
@SuppressWarnings("all")
public class ChannelContentUtils {

    /**
     * 用于存放用户之间的聊天
     */
    private static Map<String,Channel> userMap = new ConcurrentHashMap<>();


    /**
     * 获取channel内容
     * @param phone 电话号码，用于标识用户
     * @param channel 通道对象，代表与用户之间的通信通道
     */
    public static void setChannelContent(String phone, Channel channel){
        //获取channelid
        String channelId = channel.id().toString();
        AttributeKey attributeKey =  null;
        //检查attributeKey是否已经存在
        if(attributeKey.exists(channelId)){
            //如果存在，创建一个新的AttributeKey实例
            attributeKey = AttributeKey.newInstance(channelId);
        }else {
            //如果不存在，获取一个现有的AttributeKey
            attributeKey = AttributeKey.valueOf(channelId);
        }
        //将电话号码与通道关联起来
        channel.attr(attributeKey).set(phone);
        //将通道添加到userMap中
        userMap.put(phone,channel);
    }

    /**
     * 根据用户手机号获取通道
     */
    public static Channel getChannelByPhone(String phone){
        return userMap.get(phone);
    }

}
